تالار های تخصصی

ساخت وبلاگ
از نسخه های قدیمی اوراکل این امکان را داشتیم که برای ستونهای جداول، مقدار پیش فرض و یا همان Default Value تعریف کنیم. با تنظیم Default Value برای یک ستون، اگر در زمان اجرای دستور insert مقداری را برای آن ستون لحاظ نکرده باشیم، Default Value برای آن ستون اعمال خواهد شد: SQL*Plus: Release 10.1.0.4.2 - Production on Sat Aug 5 16:28:29 2023 SQL> create table tbl1(id number,tarikh date default sysdate+1); Table created. SQL> insert into tbl1(id) values(1); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 در این شرایط اگر به صراحت مقدار NULL را برای ستون tarikh در نظر بگیریم چه اتفاقی می افتد؟ SQL> insert into tbl1 values(2,null); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 2 همانطور که می بینید، Default value در این حالت اعمال نشده است! اوراکل در نسخه 12cR1 قابلیتی را اضافه کرده تا بتوان در این حالت هم مقدار Default Value به جای NULL برای ستون مورد نظر اعمال شود: SQL*Plus: Release 12.1.0.2.0 Production on Sat Aug 5 16:30:29 2023 SQL> create table tbl1(id number,tarikh date default on null sysdate+1); Table created. SQL> insert into tbl1(id) values(1); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 SQL> insert into tbl1 values(2,null); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 2 06-AUG-23 در این شرایط، با توجه به شر تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 58 تاريخ : سه شنبه 24 مرداد 1402 ساعت: 16:33

قابلیت SQL History در نسخه 23c امکان مشاهده آخرین دستورات اجرا شده توسط sessionها را فراهم می کند(حدودا 50 دستور برای هر session) اوراکل بر اساس این قابلیت، دستوراتی که اجرای آنها به خطا خورده را هم نمایش می دهد. برای فعال کردن قابلیت SQL History باید پارامتر SQL_HISTORY_ENABLED را به مقدار TRUE تنظیم کرد مقدار پیش فرض این پارامتر برابر با False است: SQL> show parameter SQL_HISTORY_ENABLED NAME TYPE VALUE -------------------- --------- ------- sql_history_enabled boolean FALSE این پارامتر در دو سطح session و system قابل تنظیم است: SQL> alter system set sql_history_enabled=true; System altered بعد از تنظیم این پارامتر، برای مشاهده لیست دستورات اجرا شده می توان از ویوی V$SQL_HISTORY استفاده کرد: SQL> desc v$sql_history Name Type Nullable Default Comments ------------------------------ ------------- -------- ------- -------- KEY NUMBER Y SQL_ID VARCHAR2(13) Y ELAPSED_TIME NUMBER Y CPU_TIME NUMBER Y BUFFER_GETS NUMBER Y IO_INTERCONNECT_BYTES NUMBER Y PHYSICAL_READ_REQUESTS NUMBER Y PHYSICAL_READ_BYTES NUMBER Y PHYSICAL_WRITE_REQ تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 60 تاريخ : دوشنبه 16 مرداد 1402 ساعت: 15:26

تا قبل از اوراکل 23c،ء Flashback Logها الزاما باید در FRA ذخیره می شدند و در صورت عدم تنظیم FRA، امکان فعال کردن قابلیت Flashback Database وجود نداشت: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production SQL> alter database flashback on; ORA-38706: Cannot tu on FLASHBACK DATABASE logging. ORA-38709: Recovery Area is not enabled. در نسخه 23c دو پارامتر جدید در این زمینه معرفی شدند که می توان از طریق آنها Flashback Logها را در مسیری غیر از FRA ذخیره کرد. این پارامترها، db_flashback_log_dest_size و db_flashback_log_dest هستند. قبل از تنظیم این دو پارامتر، وضعیت پارامترهای مربوط به FRA را بررسی می کنیم: SQL> show parameter db_recovery_file_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string db_recovery_file_dest_size big integer 0 با تنظیم دو پارامتر مذکور، قابلیت Flashback Database را فعال می کنیم: SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO SQL> alter system set db_flashback_log_dest_size=800m; System altered. SQL> alter system set db_flashback_log_dest='/oracle23c/FlashbackLog'; System altered. SQL> alter database flashback on; Database altered. SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ YES با فعال کردن این قابلیت، Flashback Logها با پسوند flb در مسیر زیر ایجاد خواهند شد: SQL> select NAME,SPACE_LIMIT/1024/1024 as "SPACE_LIMI تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 56 تاريخ : دوشنبه 16 مرداد 1402 ساعت: 15:26

خبرنامه